# -*- coding: utf-8 -*-

from zinx.ziface.iconnection import IConnection
from abc import ABC, abstractmethod


class IRequest(ABC):
    """
    IRequest 接口：实际上是把客户端请求的链接信息 和 请求的数据 包装到了 Request里
    """
    @abstractmethod
    def GetConnection(self) -> IConnection:
        """
        获取请求连接信息
        :return:
        """
        pass

    @abstractmethod
    def GetData(self) -> bytes:
        """
        获取请求消息的数据
        :return:
        """
        pass

    @abstractmethod
    def GetMsgID(self) -> int:
        """
        获取请求消息的ID
        :return:
        """
        pass
